import fetch from '../utils/Fetch';

/**
 * 修改用户关注设置
 * @param {*} type  设置的类型，必须为以下的几种类型： 1、change24h （24小时涨跌）2、changeReachSetting （达到自己设置的涨跌阀值提醒）3、bigTransfer （大额转账提醒）
 * @param {*} value 设置的开关：1:打开，0：关闭
 */
export const followChangeApi = (type,value = 1) => fetch({
  url: 'follow/setting/change',
  method: 'post',
  data:{
    type,value
  },
  transformRequest: [function (data) {
    let ret = ''
    for (let it in data) {
      ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
    }
    return ret
  }],
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
});

/**
 * 用户关注一个数字货币的时候调用，重复调用不会报错。
 * @param {数字货币名字，比如 bitcoin	} uniqueName 
 */
export const followAddApi = (uniqueName) => fetch({
  url: 'follow/add',
  method: 'post',
  data:{
    uniqueName
  },
  transformRequest: [function (data) {
    let ret = ''
    for (let it in data) {
      ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
    }
    return ret
  }],
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
});
/**
 * 取消关注
 * @param {*} uniqueName 
 */
export const followDelApi = (uniqueName) => fetch({
  url: 'follow/del',
  method: 'post',
  data:{
    uniqueName
  },
  transformRequest: [function (data) {
    let ret = ''
    for (let it in data) {
      ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
    }
    return ret
  }],
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
});
/**
 * 返回关注的数字货币的列表，按关注的时间倒序排列。
 * @param {*} page 
 * @param {*} pageSize 
 */
export const followListApi = (page = 1,pageSize = 20) => fetch({
  url: 'follow/list',
  method: 'get',
  params:{
    page,pageSize
  },
});

/**
 * 获取用户所有的关注设置
 */
export const followSettingApi = () => fetch({
  url: 'follow/setting/get',
  method: 'get',
  params:{},
});

/**
 * 设置数字货币预警的价格，达到或超过阀值则推送消息给用户。
 * @param {数字货币名称，比如 bitcoin} uniqueName 
 * @param {>=此价格报警，为 null 或空表示不改变} upperPrice 
 * @param {<=此价格报警，为 null 或空表示不改变} lowerPrice 
 */
export const setWarningPriceApi = (uniqueName,parasm = {}) => {
  const { priceWarningUpper: upperPrice, priceWarningLower:lowerPrice,percentChange24hUpper:upperPercent, percentChange24hLower:lowerPercent} = parasm
  return fetch({
    url: 'follow/setWarningPriceAndPercent',
    method: 'post',
    data:{uniqueName,upperPrice,lowerPrice,upperPercent,lowerPercent},
    transformRequest: [function (data) {
      let ret = ''
      for (let it in data) {
        ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
      }
      return ret
    }],
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  })
};